Program Analysis and Specialization for the C Programming Language Ph.D. Thesis
نویسنده
چکیده
Software engineers are faced with a dilemma. They want to write general and wellstructured programs that are flexible and easy to maintain. On the other hand, generality has a price: efficiency. A specialized program solving a particular problem is often significantly faster than a general program. However, the development of specialized software is time-consuming, and is likely to exceed the production of today’s programmers. New techniques are required to solve this so-called software crisis. Partial evaluation is a program specialization technique that reconciles the benefits of generality with efficiency. This thesis presents an automatic partial evaluator for the Ansi C programming language. The content of this thesis is analysis and transformation of C programs. We develop several analyses that support the transformation of a program into its generating extension. A generating extension is a program that produces specialized programs when executed on parts of the input. The thesis contains the following main results. • We develop a generating-extension transformation, and describe specialization of the various parts of C, including pointers and structures. • We develop constraint-based inter-procedural pointer and binding-time analysis. Both analyses are specified via non-standard type inference systems, and implemented by constraint solving. • We develop a side-effect and an in-use analysis. These analyses are developed in the classical monotone data-flow analysis framework. Some intriguing similarities with constraint-based analysis are observed. • We investigate separate and incremental program analysis and transformation. Realistic programs are structured into modules, which break down inter-procedural analyses that need global information about functions. • We prove that partial evaluation at most can accomplish linear speedup, and develop an automatic speedup analysis. • We study the stronger transformation technique driving, and initiate the development of generating super-extensions. The developments in this thesis are supported by an implementation. Throughout the chapters we present empirical results.
منابع مشابه
C Program Specialization Master ’ s
Automatic program specialization has numerous application areas ranging from specialization of scientific computation to automatic compiler generation. During the last decade, several automatic partial evaluators have been developed and demonstrated their usefulness. However, none of these have both been for a typed imperative language and self-applicable. The main content of this thesis is the...
متن کاملA Rhetorical Move Analysis of TEFL Thesis Abstracts: The Case of Allameh Tabataba’i University
Abstract in every research paper has always been functioning as an attention-grabber which can encourage readers to keep reading the research or to dissuade it. Although abstracts are believed to play an important role in distributing the research findings, few studies have been done to evaluate the rhetorical organization of thesis abstracts, especially in the field of Teaching English as a Fo...
متن کاملگرایش موضوعی پایان نامه های دانشکده مدیریَت و اطلاع رسانی پزشکی (سال تحصیلی 1380-1386)
Introduction: Thesis commonly reflects student's research interests, which are formed in the university education courses. Formation problem in thesis is one of the most important subjects in these research documents. Limitations and situations govern in research scope causes author (researcher) to limited framework of topic as problem base in his or her research. Investigation of thesis conten...
متن کاملRewriting Logic Techniques for Program Analysis and Optimization
Debugging is the process of locating and fixing errors in computer programs. Debugging is essential in software development and almost every programming language has its own specialized tools for the task, with high variability regarding their debugging power. This paper briefly describes ongoing research towards a Ph.D. thesis on universal debugging, a proposal to develop a program debugging f...
متن کاملThe Program Optimization Spectrum A Research Statement
My current interests span programming languages, compilers and computer systems, with emphasis on program optimization. Contrary to accepted views, the area of program optimization is broad, multifaceted, almost interdisciplinary. Its spectrum extends from compiler optimization to the more experimental processor architecture and to the more formally treated program specialization. While my thes...
متن کامل